package br.ufrj.pesc.misc;


import java.net.MalformedURLException;
import java.text.Normalizer;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import org.apache.cassandra.thrift.Cassandra.system_add_column_family_args;

import br.com.gpetec.mom.domain.solr.documents.Documento;
import br.com.gpetec.mom.domain.solr.documents.Orientacao;
import br.ufrj.pesc.cassandra.SimpleCassandraClient;
import br.ufrj.pesc.solr.SearchSolrHandler;

public class Populando3 {

	/**
	 * @param args
	 * @throws MalformedURLException 
	 */
	public static void main(String[] args) throws MalformedURLException {
		// TODO Auto-generated method stub

		SimpleCassandraClient client = new SimpleCassandraClient();
		client.connect("192.168.8.182");
		SearchSolrHandler solr= new SearchSolrHandler() ;
		Date dataHoje = new Date();
		Calendar calendario = Calendar.getInstance();
		calendario.set(2012, 6, 13, 0, 0, 0);
		calendario.set(Calendar.MILLISECOND, 0);


		Calendar calendario2 = Calendar.getInstance();
		calendario2.set(2012, 6, 14, 0, 0, 0);
		calendario2.set(Calendar.MILLISECOND, 0);

		Date dataInicioMom = calendario.getTime();



		ArrayList<String> fontes = new ArrayList<String>();
		fontes.add("twitter");
		//fontes.add("facebook");
		//fontes.add("noticia");
		ArrayList<String> entidades= new ArrayList<String>();
		entidades.add("josé serra");
		entidades.add("lula");
		entidades.add("dilma rousseff");
		entidades.add("eduardo paes");
		entidades.add("marcelo freixo");
		entidades.add("fernando haddad");
		entidades.add("soninha francine");
		entidades.add("celso russomanno");
		entidades.add("otávio leite");
		entidades.add("rodrigo maia");



		for(String fonte:fontes){
			ArrayList<String> fontesInner = new ArrayList<String>();
			fontesInner.add(fonte);
			while (calendario.getTime().before(dataHoje)){
				for(String entidade:entidades){


					List<Documento> docs = solr.recuperaDocumentosTortaMencao(entidade, calendario.getTime(), calendario2.getTime(), fontesInner);

					entidade= Normalizer.normalize(entidade, Normalizer.Form.NFD);
					entidade = entidade.replaceAll("[^\\p{ASCII}]", "");
					System.out.println(docs.size()+" "+entidade+" "+fonte);
					for(Documento doc:docs){
						int orientacao = -1;
						if (Orientacao.valueOf(doc.getOrientacao().toUpperCase())==Orientacao.IRRELEVANTE){
							orientacao=0;
						}
						if (Orientacao.valueOf(doc.getOrientacao().toUpperCase())==Orientacao.NEUTRO){
							orientacao=1;
						}
						if (Orientacao.valueOf(doc.getOrientacao().toUpperCase())==Orientacao.POSITIVO){
							orientacao=2;
						}
						client.execute("INSERT INTO docsPoliticoDiaId( nomeEntidade , dia, id , texto , orientacao,fonte)  VALUES ('"+entidade+"',"+calendario.getTimeInMillis()+",'"+doc.getSolrId()+"','"+doc.getTexto().replaceAll("'", "\"")+"',"+orientacao+",'"+fonte+"');");
					}

					//			
				}
				System.out.println("acabou um dia");
				calendario.add(Calendar.DAY_OF_MONTH, 1);
				calendario2.add(Calendar.DAY_OF_MONTH, 1);
			}
			System.out.println("acabou uma fonte");
		}


		//calendario.roll(Calendar.DAY_OF_MONTH, 1);

		//System.out.println(solr.recuperaDocumentos("*:*", dataInicioMom, calendario.getTime()).size());

	}

}
